Skip to content

👷 ci(github): test against Python 3.15 - #180

Closed
gaborbernat wants to merge 2 commits into
mainfrom
add-python-3.15
Closed

👷 ci(github): test against Python 3.15#180
gaborbernat wants to merge 2 commits into
mainfrom
add-python-3.15

Conversation

@gaborbernat

@gaborbernat gaborbernat commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Python 3.15 is at beta 4. Adding it to CI now surfaces breakage while there is still time to report it upstream, ahead of the release candidate.

The change mirrors the 3.14 addition in e709c83: one matrix entry in build.yml and the matching env in the tox envlist. It needs no prerelease handling, because the ${{ matrix.py }}-dev suffix already on setup-python resolves to the newest available build. The job picked up 3.15.0-beta.4 and created its virtualenv without trouble. 🐍 It also skips the classifier. The 3.14 classifier landed once 3.14 reached rc, and 3.15 is still in beta, so this starts testing the version short of declaring support for it.

memray ships no cp315 wheels; its newest release, 1.19.3, covers cp38 through cp314, so on 3.15 pip falls back to the sdist and the build stops at fatal error: libunwind.h: No such file or directory. Upstream merged 3.15 support when it closed Support Python 3.15 on 2026-05-20, six weeks after publishing 1.19.3 on 2026-04-08, so that work exists on main but not in any release.

To test something real in the meantime, the py315 tox env installs memray @ git+https://github.com/bloomberg/memray.git and the py315 CI leg alone installs the apt packages memray's own CI uses to build from source (libdebuginfod-dev, libunwind-dev, liblz4-dev, pkg-config). The job exercises memray's merged 3.15 support rather than a stale sdist, while every other leg keeps installing released memray from PyPI. ⏳ The git pin and the extra apt step are temporary; drop both once memray cuts a release with cp315 wheels.

Mirrors how 3.14 was added in e709c83: a matrix entry in build.yml and the
corresponding env in the tox envlist. The existing `${{ matrix.py }}-dev`
suffix on setup-python already picks up the newest prerelease, so no extra
handling is needed.

No classifier is added yet. The 3.14 classifier landed once 3.14 reached
rc; 3.15 is still in beta, so this only starts testing against it rather
than declaring support.

Signed-off-by: Bernát Gábor <gaborjbernat@gmail.com>
@gaborbernat gaborbernat changed the title Add Python 3.15 to the CI test matrix 👷 ci(github): test against Python 3.15 Jul 21, 2026
@gaborbernat gaborbernat added the github_actions Pull requests that update GitHub Actions code label Jul 21, 2026
@gaborbernat
gaborbernat marked this pull request as draft July 21, 2026 05:02
memray 1.19.3 predates the 3.15 support merged in bloomberg/memray#920 and
ships no cp315 wheels, so pip falls back to the sdist and the C extension
build fails on the runner. Until a memray release covers 3.15, the py315
tox env installs memray from git main and the py315 CI leg alone gains the
apt packages memray's own CI uses to build it. All other legs keep
installing released memray from PyPI; the pin and the extra CI step should
both be dropped once cp315 wheels are published.

Signed-off-by: Bernát Gábor <gaborjbernat@gmail.com>
@gaborbernat

Copy link
Copy Markdown
Contributor Author

Dropping this until memray publishes cp315 wheels; the branch stays for when it does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Python 3.15

1 participant